.. _cmsGnLoadDevice: cmsGnLoadDevice =================== ------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmsGnLoadDevice ( [out] VT_PI4 NumDevices, [out] VT_PI4 BoardIdList, [out] VT_PI4 NumServos ) DESCRIPTION ````````````` - 시스템에 설치된 하드웨어 장치를 로드합니다. 이 함수는 ComiSSCNET3 / SSCNET3H 의 다른 함수가 호출되기전에 반드시 한번은 수행되어야 합니다. 일반적으로 프로그램의 시작부분에서 수행해주면 됩니다. \ - 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cms 가 붙지 않습니다. PARAMETER `````````````` ▶ NumDevices : 이 매개 변수를 통하여 실제로 로드(Load)된 네트워크 모션 보드의 개수를 반환합니다. 단, 이 매개 변수에 NULL 을 전달하면 보드 개수를 반환하지 않습니다. ▶ BoardIdList : 이 매개 변수를 통하여 실제로 로드(Load)된 네트워크 모션 보드의 ID 배열을 반환합니다. 단, 이 매개 변수에 NULL 을 전달하면 보드 ID 배열을 반환하지 않습니다. ▶ NumServos : 이 매개 변수를 통하여 실제로 로드(Load)된 서보 드라이브의 개수를 반환합니다. 단, 이 매개 변수에 NULL 을 전달하면 제어 축 수를 반환하지 않습니다. RETURN VALUE ````````````` - 장치 로드 성공 여부를 반환합니다. +------------+----------------+ | Value | Meaning | +============+================+ | 음수 | 수행 실패. | +------------+----------------+ | cmERR_NONE | 수행 성공 | +------------+----------------+ Example ````````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #include “ComiSSCNET3_SDK.h” #include “ComiSSCNET3_SDK_Def.h” void ProgramInitial(void) { long nNumDevices = 0; long DeviceList[16] = {0, }; long nNumAxes = 0; if ( cmsLoadDll() != TRUE ) { /* OutputDebugString API 는 GUI 프로그램에서 문자열을 디버거에 보낼 수 있습니다. Borland C++ Builder 에서는 DebugWindows 에 Event Log 를 확인(確認)할 수 있으며, MS VC++ 에서는 Debug 윈도우에서 확인(確認)할 수 있습니다. */ OutputDebugString(“DLL 로드에 실패하였습니다”); // 이후 적절한 에러처리를 해주시기 바랍니다. } if ( cmsGnLoadDevice (&nNumDevices, DeviceList, &nNumAxes) != ERR_NONE ){ // 에러메시지 출력 } } /* ProgramInitial(void) 함수의 끝 */ ----------------------------------------------------------------------------------------------------------------------------- Visual Basic ‘ Visual Basic 에서는 명시적인 DLL 로드가 필요 없습니다. Private Sub Form_Load() Dim IRetVal As Long Dim nTotalDevices As Long Dim DeviceList(16) As Long Dim nTotalAxes As Long IRetVal = GnLoadDevice (nTotalDevices, DeviceList(0), nTotalAxes) If IRetVal <> ERR_NONE Then MsgBox(“cmsGnLoadDevice has been failed”) End If End Sub ------------------------------------------------------------------------------------------------------------------------------ Delphi //* Delphi 에서는 명시적인 DLL 로드가 필요없습니다. //* 단, 처음 선언시에 다음과 같은 내용이 포함되어야 합니다. ///////////////////////////////////////////////////////////// // COMZIOA SDK Library 를 위한 인터페이스 파일을 사용합니다. uses ComiSSCNET3; //////////////////////////////////////////////////////////// procedure TForm1.OnCreate(Sender: TObject); var g_nDevs : LongInt; DevList : Array[0..15] of LongInt g_nAxes : LongInt; begin if ( cmsGnLoadDevice (@g_nDevs, @DevList, @g_nAxes) <> ERR_NONE ) then begin // 에러메시지 출력 exit; end; end; .. seealso:: :ref:`cmsGnUnloadDevice`